//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
#ifndef EXTRACTCOMPLEXSEPARATED_H
#define	EXTRACTCOMPLEXSEPARATED_H
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
#include "libraries.h"
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
class ExtractComplexSeparated {

  private:
      
    String* location;
    String* listInFilename;
    String* locationLigandOut;
    String* locationProteinOut;
    String* listResiduesBindingSite;
    String* outList;

  protected:

    bool    SplitColumn(char*, TListE <String>*, char*);
    bool    SplitColumn(char*, TListE <String>*, const char*);
    char    OneLetterAACode(String*);

    String* ExtractPDBCodeFromNamefile(String*);

  public:

    ExtractComplexSeparated();
    ExtractComplexSeparated(const ExtractComplexSeparated&);
    ExtractComplexSeparated(const ExtractComplexSeparated*);
    
    ~ExtractComplexSeparated();

    void    Location(String*);
    void    ListInFilename(String*);
    void    LocationLigandOut(String*);
    void    LocationProteinOut(String*);
    void    ListResiduesBindingSite(String*);
    void    OutList(String*);
    
    String* Location(void);
    String* ListInFilename(void);
    String* LocationLigandOut(void);
    String* LocationProteinOut(void);
    String* ListResiduesBindingSite(void);
    String* OutList(void);

    bool    GeneratedReducedDatabase();
    bool    GeneratedReducedDatabaseLargestLigand();
    
    bool    GeneratedDBCoordProtein();

};
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
#endif
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
